1658. Факториал

 

Вычислите факториал числа.

 

Вход. Одно целое число n (0 ≤ n ≤ 20).

 

Выход. Выведите значение n!

 

Пример входа

Пример выхода

3

6

 

 

РЕШЕНИЕ

элементарная задача

 

Анализ алгоритма

Факториалом числа n называется произведение чисел от 1 до n:

n! = 1 * 2 * … * (n – 1) * n

Следует запомнить, что факториал нуля равен единице:

0! = 1

Например:

1! = 1;

2! = 1 * 2 = 2;

3! = 1 * 2 * 3 = 6;

4! = 1 * 2 * 3 * 4 = 24;

 

Заметим, что например

5! = (1 * 2 * 3 * 4) * 5 = 4! * 5;

100! = (1 * 2 * … * 99) * 100 = 99! * 100;

n! = 1 * 2 * … * (n – 1) * n = (n – 1)! * n;

 

Факториал числа можно вычислить либо при помощи цикла, либо при помощи рекурсии. Во втором случае следует воспользоваться рекуррентной формулой:

fact(n) =

 

Реализация алгоритма

Читаем входное значение n.

 

scanf("%lld",&n);

 

Вычисляем факториал числа res = n! = 1 * 2 * 3 * … * n.

 

res = 1;

for(i = 1; i <= n; i++)

  res = res * i;

 

Выводим ответ.

 

printf("%lld\n",res);

 

Реализация алгоритма – рекурсия

Функция fact вычисляет факториал числа n.

 

long long fact(long long n)

{

  if (n == 0) return 1;

  return fact(n-1) * n;

}

 

Основная часть программы. Читаем входное значение n.

 

scanf("%lld",&n);

 

Вычисляем и выводим ответ.

 

res = fact(n);

printf("%lld\n",res);

 

Java реализация – рекурсия

 

import java.util.*;

 

public class Main

{

  static long fact(int n)

  {

    if (n == 0) return 1;

    return fact(n - 1) * n;

  }

   

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

 

    long res = fact(n);

 

    System.out.println(res);

    con.close();

  }

}

 

Python реализация цикл

Читаем входное значение n.

 
n = int(input())
 

Вычисляем факториал числа res = n! = 1 * 2 * 3 * … * n.

 
res = 1
for i in range(1,n+1):
  res *= i
 

Выводим ответ.

 
print(res)

 

Python реализация – рекурсия

Функция fact вычисляет факториал числа n.

 

def fact(n):
  if n == 0: return 1
  return n * fact(n-1)
 

Основная часть программы. Читаем входное значение n.

 
n = int(input())
 

Вычисляем и выводим ответ.

 
print(fact(n))